
# 多阶段构建

# 使用官方Go镜像进行构建阶段
FROM golang:1.23.4 AS builder

# 设置工作目录
WORKDIR /app

# 将项目文件复制到容器内
COPY . .

# 下载依赖并构建二进制文件

# 设置大陆镜像源
RUN go env -w GOPROXY=https://goproxy.io

RUN go mod tidy
RUN go build -o go_async_ldap .




# 使用一个更小的基础镜像进行运行阶段
FROM alpine:latest

# 创建非root用户 (可选的安全性增强)
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser

# 设置工作目录
WORKDIR /app

# 从构建阶段复制编译好的二进制文件
COPY --from=builder /app/My_go_async_ldap .

# 暴露端口
EXPOSE 8080

# 运行应用
CMD ["./My_go_async_ldap"]
